﻿#pragma warning(disable: 4996)
#pragma warning(disable: 6031)

/*
一对兔子，从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死，请问第1个月出生的一对兔子，至少需要繁衍到第几个月时兔子总数才可以达到N对？

输入格式:
输入在一行中给出一个不超过10000的正整数N。

输出格式:
在一行中输出兔子总数达到N最少需要的月数。

输入样例:
30
输出样例:
9
*/

#include <stdio.h>

static inline int total(int a0, int a1, int a2) {
	return a0 + a1 + a2;
}

void solve() {
	int n;
	scanf("%d", &n);
	int a0 = 1, a1 = 0, a2 = 0;
	int month = 1;
	while (total(a0, a1, a2) < n) {
		++month;
		a2 += a1;
		a1 = a0;
		a0 = a2;
		//printf("%d %d %d %d\n",month, a0, a1, a2);
	}
	printf("%d\n", month);
}

int main()
{
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-27.txt", "r", stdin);
	solve();
	return 0;
}